package com.example.demo.dto;

import java.util.List;


public class MultipleApprovalResultDTO {
    // 原始任务审批状态信息
    private TaskApprovalStatusDTO originalTaskApprovalStatus;
    
    // 匹配到的所有审批人列表
    private List<ApproverInfoDTO> matchedApprovers;
    
    // 最终选择的审批人
    private ApproverInfoDTO selectedApprover;
    
    // 选择策略
    private String selectionStrategy;
    
    // 负载信息
    private List<ApproverLoadInfoDTO> approverLoadInfoList;

    public TaskApprovalStatusDTO getOriginalTaskApprovalStatus() {
        return originalTaskApprovalStatus;
    }

    public void setOriginalTaskApprovalStatus(TaskApprovalStatusDTO originalTaskApprovalStatus) {
        this.originalTaskApprovalStatus = originalTaskApprovalStatus;
    }

    public List<ApproverInfoDTO> getMatchedApprovers() {
        return matchedApprovers;
    }

    public void setMatchedApprovers(List<ApproverInfoDTO> matchedApprovers) {
        this.matchedApprovers = matchedApprovers;
    }

    public ApproverInfoDTO getSelectedApprover() {
        return selectedApprover;
    }

    public void setSelectedApprover(ApproverInfoDTO selectedApprover) {
        this.selectedApprover = selectedApprover;
    }

    public String getSelectionStrategy() {
        return selectionStrategy;
    }

    public void setSelectionStrategy(String selectionStrategy) {
        this.selectionStrategy = selectionStrategy;
    }

    public List<ApproverLoadInfoDTO> getApproverLoadInfoList() {
        return approverLoadInfoList;
    }

    public void setApproverLoadInfoList(List<ApproverLoadInfoDTO> approverLoadInfoList) {
        this.approverLoadInfoList = approverLoadInfoList;
    }

    public static class ApproverInfoDTO {
        private Long userId;
        private String userName;
        private String userAuthId;
        
        public Long getUserId() {
            return userId;
        }
        
        public void setUserId(Long userId) {
            this.userId = userId;
        }
        
        public String getUserName() {
            return userName;
        }
        
        public void setUserName(String userName) {
            this.userName = userName;
        }
        
        public String getUserAuthId() {
            return userAuthId;
        }
        
        public void setUserAuthId(String userAuthId) {
            this.userAuthId = userAuthId;
        }
    }
    
    public static class ApproverLoadInfoDTO {
        private Long userId;
        private String userName;
        private int pendingTasks;      // 待处理任务数
        private int processingTasks;   // 处理中任务数
        private int totalActiveTasks;  // 总活跃任务数
        private double loadFactor;     // 负载因子
        
        public Long getUserId() {
            return userId;
        }
        
        public void setUserId(Long userId) {
            this.userId = userId;
        }
        
        public String getUserName() {
            return userName;
        }
        
        public void setUserName(String userName) {
            this.userName = userName;
        }
        
        public int getPendingTasks() {
            return pendingTasks;
        }
        
        public void setPendingTasks(int pendingTasks) {
            this.pendingTasks = pendingTasks;
        }
        
        public int getProcessingTasks() {
            return processingTasks;
        }
        
        public void setProcessingTasks(int processingTasks) {
            this.processingTasks = processingTasks;
        }
        
        public int getTotalActiveTasks() {
            return totalActiveTasks;
        }
        
        public void setTotalActiveTasks(int totalActiveTasks) {
            this.totalActiveTasks = totalActiveTasks;
        }
        
        public double getLoadFactor() {
            return loadFactor;
        }
        
        public void setLoadFactor(double loadFactor) {
            this.loadFactor = loadFactor;
        }
    }
}